﻿using System;
using System.Collections.Generic;
using System.Text;

namespace IllustratedCsharp7_ch14
{

    /*如果委托有返回值并且在调用列表中有一个以上的方法，会发生下面的情况。
        调用列表中最后 一个方法返回的值就是委托调用返回的值
        调用列表中所有其他方法的返回值都会被忽略
     */

    delegate int MyDel();
    class MyClass
    {
        int IntValue = 5;
        public int Add2() { IntValue += 2; return IntValue;}
        public int Add3() { IntValue += 3; return IntValue; }
    }
    class Chapt14_11CallTheDelegateWithReturnValue
    {
        static void _Main()
        {
            MyClass mc = new MyClass();
            MyDel mDel = mc.Add2; //创建并初始化委托
            mDel += mc.Add3;       //增加方法
            mDel += mc.Add2;       //增加方法

            Console.WriteLine($"Value:{ mDel()}");
        }
    }
}
